(0) Obligation:

Clauses:

perm([], []).
perm(Xs, .(X, Ys)) :- ','(app(X1s, .(X, X2s), Xs), ','(app(X1s, X2s, Zs), perm(Zs, Ys))).
app([], X, X).
app(.(X, Xs), Ys, .(X, Zs)) :- app(Xs, Ys, Zs).

Query: perm(g,a)

(1) PrologToPrologProblemTransformerProof (SOUND transformation)

Built Prolog problem from termination graph ICLP10.

(2) Obligation:

Clauses:

appA([], T68, T69, .(T68, T69)).
appA(.(T77, X107), T79, X108, .(T77, T78)) :- appA(X107, T79, X108, T78).
appB([], T102, T102).
appB(.(T109, T110), T111, .(T109, X156)) :- appB(T110, T111, X156).
appC(T37, T37).
appD(T93, T94, T95, .(T93, X134)) :- appB(T94, T95, X134).
permE([], []).
permE(.(T27, T28), .(T27, T29)) :- appC(T28, X27).
permE(.(T27, T28), .(T27, T29)) :- ','(appC(T28, T31), permE(T31, T29)).
permE(.(T45, T46), .(T47, T48)) :- appA(X68, T47, X69, T46).
permE(.(T45, T46), .(T47, T55)) :- ','(appA(T53, T47, T54, T46), appD(T45, T53, T54, X27)).
permE(.(T45, T46), .(T47, T55)) :- ','(appA(T53, T47, T54, T46), ','(appD(T45, T53, T54, T84), permE(T84, T55))).

Query: permE(g,a)

(3) PrologToPiTRSProof (SOUND transformation)

We use the technique of [TOCL09]. With regard to the inferred argument filtering the predicates were used in the following modes:
permE_in: (b,f)
appA_in: (f,f,f,b)
appD_in: (b,b,b,f)
appB_in: (b,b,f)
Transforming Prolog into the following Term Rewriting System:
Pi-finite rewrite system:
The TRS R consists of the following rules:

permE_in_ga([], []) → permE_out_ga([], [])
permE_in_ga(.(T27, T28), .(T27, T29)) → U4_ga(T27, T28, T29, appC_in_ga(T28, X27))
appC_in_ga(T37, T37) → appC_out_ga(T37, T37)
U4_ga(T27, T28, T29, appC_out_ga(T28, X27)) → permE_out_ga(.(T27, T28), .(T27, T29))
permE_in_ga(.(T27, T28), .(T27, T29)) → U5_ga(T27, T28, T29, appC_in_ga(T28, T31))
U5_ga(T27, T28, T29, appC_out_ga(T28, T31)) → U6_ga(T27, T28, T29, permE_in_ga(T31, T29))
permE_in_ga(.(T45, T46), .(T47, T48)) → U7_ga(T45, T46, T47, T48, appA_in_aaag(X68, T47, X69, T46))
appA_in_aaag([], T68, T69, .(T68, T69)) → appA_out_aaag([], T68, T69, .(T68, T69))
appA_in_aaag(.(T77, X107), T79, X108, .(T77, T78)) → U1_aaag(T77, X107, T79, X108, T78, appA_in_aaag(X107, T79, X108, T78))
U1_aaag(T77, X107, T79, X108, T78, appA_out_aaag(X107, T79, X108, T78)) → appA_out_aaag(.(T77, X107), T79, X108, .(T77, T78))
U7_ga(T45, T46, T47, T48, appA_out_aaag(X68, T47, X69, T46)) → permE_out_ga(.(T45, T46), .(T47, T48))
permE_in_ga(.(T45, T46), .(T47, T55)) → U8_ga(T45, T46, T47, T55, appA_in_aaag(T53, T47, T54, T46))
U8_ga(T45, T46, T47, T55, appA_out_aaag(T53, T47, T54, T46)) → U9_ga(T45, T46, T47, T55, appD_in_ggga(T45, T53, T54, X27))
appD_in_ggga(T93, T94, T95, .(T93, X134)) → U3_ggga(T93, T94, T95, X134, appB_in_gga(T94, T95, X134))
appB_in_gga([], T102, T102) → appB_out_gga([], T102, T102)
appB_in_gga(.(T109, T110), T111, .(T109, X156)) → U2_gga(T109, T110, T111, X156, appB_in_gga(T110, T111, X156))
U2_gga(T109, T110, T111, X156, appB_out_gga(T110, T111, X156)) → appB_out_gga(.(T109, T110), T111, .(T109, X156))
U3_ggga(T93, T94, T95, X134, appB_out_gga(T94, T95, X134)) → appD_out_ggga(T93, T94, T95, .(T93, X134))
U9_ga(T45, T46, T47, T55, appD_out_ggga(T45, T53, T54, X27)) → permE_out_ga(.(T45, T46), .(T47, T55))
U8_ga(T45, T46, T47, T55, appA_out_aaag(T53, T47, T54, T46)) → U10_ga(T45, T46, T47, T55, appD_in_ggga(T45, T53, T54, T84))
U10_ga(T45, T46, T47, T55, appD_out_ggga(T45, T53, T54, T84)) → U11_ga(T45, T46, T47, T55, permE_in_ga(T84, T55))
U11_ga(T45, T46, T47, T55, permE_out_ga(T84, T55)) → permE_out_ga(.(T45, T46), .(T47, T55))
U6_ga(T27, T28, T29, permE_out_ga(T31, T29)) → permE_out_ga(.(T27, T28), .(T27, T29))

The argument filtering Pi contains the following mapping:
permE_in_ga(x1, x2)  =  permE_in_ga(x1)
[]  =  []
permE_out_ga(x1, x2)  =  permE_out_ga
.(x1, x2)  =  .(x1, x2)
U4_ga(x1, x2, x3, x4)  =  U4_ga(x4)
appC_in_ga(x1, x2)  =  appC_in_ga(x1)
appC_out_ga(x1, x2)  =  appC_out_ga(x2)
U5_ga(x1, x2, x3, x4)  =  U5_ga(x4)
U6_ga(x1, x2, x3, x4)  =  U6_ga(x4)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x5)
appA_in_aaag(x1, x2, x3, x4)  =  appA_in_aaag(x4)
appA_out_aaag(x1, x2, x3, x4)  =  appA_out_aaag(x1, x2, x3)
U1_aaag(x1, x2, x3, x4, x5, x6)  =  U1_aaag(x1, x6)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x1, x5)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x5)
appD_in_ggga(x1, x2, x3, x4)  =  appD_in_ggga(x1, x2, x3)
U3_ggga(x1, x2, x3, x4, x5)  =  U3_ggga(x1, x5)
appB_in_gga(x1, x2, x3)  =  appB_in_gga(x1, x2)
appB_out_gga(x1, x2, x3)  =  appB_out_gga(x3)
U2_gga(x1, x2, x3, x4, x5)  =  U2_gga(x1, x5)
appD_out_ggga(x1, x2, x3, x4)  =  appD_out_ggga(x4)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x5)
U11_ga(x1, x2, x3, x4, x5)  =  U11_ga(x5)

Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog

(4) Obligation:

Pi-finite rewrite system:
The TRS R consists of the following rules:

permE_in_ga([], []) → permE_out_ga([], [])
permE_in_ga(.(T27, T28), .(T27, T29)) → U4_ga(T27, T28, T29, appC_in_ga(T28, X27))
appC_in_ga(T37, T37) → appC_out_ga(T37, T37)
U4_ga(T27, T28, T29, appC_out_ga(T28, X27)) → permE_out_ga(.(T27, T28), .(T27, T29))
permE_in_ga(.(T27, T28), .(T27, T29)) → U5_ga(T27, T28, T29, appC_in_ga(T28, T31))
U5_ga(T27, T28, T29, appC_out_ga(T28, T31)) → U6_ga(T27, T28, T29, permE_in_ga(T31, T29))
permE_in_ga(.(T45, T46), .(T47, T48)) → U7_ga(T45, T46, T47, T48, appA_in_aaag(X68, T47, X69, T46))
appA_in_aaag([], T68, T69, .(T68, T69)) → appA_out_aaag([], T68, T69, .(T68, T69))
appA_in_aaag(.(T77, X107), T79, X108, .(T77, T78)) → U1_aaag(T77, X107, T79, X108, T78, appA_in_aaag(X107, T79, X108, T78))
U1_aaag(T77, X107, T79, X108, T78, appA_out_aaag(X107, T79, X108, T78)) → appA_out_aaag(.(T77, X107), T79, X108, .(T77, T78))
U7_ga(T45, T46, T47, T48, appA_out_aaag(X68, T47, X69, T46)) → permE_out_ga(.(T45, T46), .(T47, T48))
permE_in_ga(.(T45, T46), .(T47, T55)) → U8_ga(T45, T46, T47, T55, appA_in_aaag(T53, T47, T54, T46))
U8_ga(T45, T46, T47, T55, appA_out_aaag(T53, T47, T54, T46)) → U9_ga(T45, T46, T47, T55, appD_in_ggga(T45, T53, T54, X27))
appD_in_ggga(T93, T94, T95, .(T93, X134)) → U3_ggga(T93, T94, T95, X134, appB_in_gga(T94, T95, X134))
appB_in_gga([], T102, T102) → appB_out_gga([], T102, T102)
appB_in_gga(.(T109, T110), T111, .(T109, X156)) → U2_gga(T109, T110, T111, X156, appB_in_gga(T110, T111, X156))
U2_gga(T109, T110, T111, X156, appB_out_gga(T110, T111, X156)) → appB_out_gga(.(T109, T110), T111, .(T109, X156))
U3_ggga(T93, T94, T95, X134, appB_out_gga(T94, T95, X134)) → appD_out_ggga(T93, T94, T95, .(T93, X134))
U9_ga(T45, T46, T47, T55, appD_out_ggga(T45, T53, T54, X27)) → permE_out_ga(.(T45, T46), .(T47, T55))
U8_ga(T45, T46, T47, T55, appA_out_aaag(T53, T47, T54, T46)) → U10_ga(T45, T46, T47, T55, appD_in_ggga(T45, T53, T54, T84))
U10_ga(T45, T46, T47, T55, appD_out_ggga(T45, T53, T54, T84)) → U11_ga(T45, T46, T47, T55, permE_in_ga(T84, T55))
U11_ga(T45, T46, T47, T55, permE_out_ga(T84, T55)) → permE_out_ga(.(T45, T46), .(T47, T55))
U6_ga(T27, T28, T29, permE_out_ga(T31, T29)) → permE_out_ga(.(T27, T28), .(T27, T29))

The argument filtering Pi contains the following mapping:
permE_in_ga(x1, x2)  =  permE_in_ga(x1)
[]  =  []
permE_out_ga(x1, x2)  =  permE_out_ga
.(x1, x2)  =  .(x1, x2)
U4_ga(x1, x2, x3, x4)  =  U4_ga(x4)
appC_in_ga(x1, x2)  =  appC_in_ga(x1)
appC_out_ga(x1, x2)  =  appC_out_ga(x2)
U5_ga(x1, x2, x3, x4)  =  U5_ga(x4)
U6_ga(x1, x2, x3, x4)  =  U6_ga(x4)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x5)
appA_in_aaag(x1, x2, x3, x4)  =  appA_in_aaag(x4)
appA_out_aaag(x1, x2, x3, x4)  =  appA_out_aaag(x1, x2, x3)
U1_aaag(x1, x2, x3, x4, x5, x6)  =  U1_aaag(x1, x6)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x1, x5)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x5)
appD_in_ggga(x1, x2, x3, x4)  =  appD_in_ggga(x1, x2, x3)
U3_ggga(x1, x2, x3, x4, x5)  =  U3_ggga(x1, x5)
appB_in_gga(x1, x2, x3)  =  appB_in_gga(x1, x2)
appB_out_gga(x1, x2, x3)  =  appB_out_gga(x3)
U2_gga(x1, x2, x3, x4, x5)  =  U2_gga(x1, x5)
appD_out_ggga(x1, x2, x3, x4)  =  appD_out_ggga(x4)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x5)
U11_ga(x1, x2, x3, x4, x5)  =  U11_ga(x5)

(5) DependencyPairsProof (EQUIVALENT transformation)

Using Dependency Pairs [AG00,LOPSTR] we result in the following initial DP problem:
Pi DP problem:
The TRS P consists of the following rules:

PERME_IN_GA(.(T27, T28), .(T27, T29)) → U4_GA(T27, T28, T29, appC_in_ga(T28, X27))
PERME_IN_GA(.(T27, T28), .(T27, T29)) → APPC_IN_GA(T28, X27)
PERME_IN_GA(.(T27, T28), .(T27, T29)) → U5_GA(T27, T28, T29, appC_in_ga(T28, T31))
U5_GA(T27, T28, T29, appC_out_ga(T28, T31)) → U6_GA(T27, T28, T29, permE_in_ga(T31, T29))
U5_GA(T27, T28, T29, appC_out_ga(T28, T31)) → PERME_IN_GA(T31, T29)
PERME_IN_GA(.(T45, T46), .(T47, T48)) → U7_GA(T45, T46, T47, T48, appA_in_aaag(X68, T47, X69, T46))
PERME_IN_GA(.(T45, T46), .(T47, T48)) → APPA_IN_AAAG(X68, T47, X69, T46)
APPA_IN_AAAG(.(T77, X107), T79, X108, .(T77, T78)) → U1_AAAG(T77, X107, T79, X108, T78, appA_in_aaag(X107, T79, X108, T78))
APPA_IN_AAAG(.(T77, X107), T79, X108, .(T77, T78)) → APPA_IN_AAAG(X107, T79, X108, T78)
PERME_IN_GA(.(T45, T46), .(T47, T55)) → U8_GA(T45, T46, T47, T55, appA_in_aaag(T53, T47, T54, T46))
U8_GA(T45, T46, T47, T55, appA_out_aaag(T53, T47, T54, T46)) → U9_GA(T45, T46, T47, T55, appD_in_ggga(T45, T53, T54, X27))
U8_GA(T45, T46, T47, T55, appA_out_aaag(T53, T47, T54, T46)) → APPD_IN_GGGA(T45, T53, T54, X27)
APPD_IN_GGGA(T93, T94, T95, .(T93, X134)) → U3_GGGA(T93, T94, T95, X134, appB_in_gga(T94, T95, X134))
APPD_IN_GGGA(T93, T94, T95, .(T93, X134)) → APPB_IN_GGA(T94, T95, X134)
APPB_IN_GGA(.(T109, T110), T111, .(T109, X156)) → U2_GGA(T109, T110, T111, X156, appB_in_gga(T110, T111, X156))
APPB_IN_GGA(.(T109, T110), T111, .(T109, X156)) → APPB_IN_GGA(T110, T111, X156)
U8_GA(T45, T46, T47, T55, appA_out_aaag(T53, T47, T54, T46)) → U10_GA(T45, T46, T47, T55, appD_in_ggga(T45, T53, T54, T84))
U10_GA(T45, T46, T47, T55, appD_out_ggga(T45, T53, T54, T84)) → U11_GA(T45, T46, T47, T55, permE_in_ga(T84, T55))
U10_GA(T45, T46, T47, T55, appD_out_ggga(T45, T53, T54, T84)) → PERME_IN_GA(T84, T55)

The TRS R consists of the following rules:

permE_in_ga([], []) → permE_out_ga([], [])
permE_in_ga(.(T27, T28), .(T27, T29)) → U4_ga(T27, T28, T29, appC_in_ga(T28, X27))
appC_in_ga(T37, T37) → appC_out_ga(T37, T37)
U4_ga(T27, T28, T29, appC_out_ga(T28, X27)) → permE_out_ga(.(T27, T28), .(T27, T29))
permE_in_ga(.(T27, T28), .(T27, T29)) → U5_ga(T27, T28, T29, appC_in_ga(T28, T31))
U5_ga(T27, T28, T29, appC_out_ga(T28, T31)) → U6_ga(T27, T28, T29, permE_in_ga(T31, T29))
permE_in_ga(.(T45, T46), .(T47, T48)) → U7_ga(T45, T46, T47, T48, appA_in_aaag(X68, T47, X69, T46))
appA_in_aaag([], T68, T69, .(T68, T69)) → appA_out_aaag([], T68, T69, .(T68, T69))
appA_in_aaag(.(T77, X107), T79, X108, .(T77, T78)) → U1_aaag(T77, X107, T79, X108, T78, appA_in_aaag(X107, T79, X108, T78))
U1_aaag(T77, X107, T79, X108, T78, appA_out_aaag(X107, T79, X108, T78)) → appA_out_aaag(.(T77, X107), T79, X108, .(T77, T78))
U7_ga(T45, T46, T47, T48, appA_out_aaag(X68, T47, X69, T46)) → permE_out_ga(.(T45, T46), .(T47, T48))
permE_in_ga(.(T45, T46), .(T47, T55)) → U8_ga(T45, T46, T47, T55, appA_in_aaag(T53, T47, T54, T46))
U8_ga(T45, T46, T47, T55, appA_out_aaag(T53, T47, T54, T46)) → U9_ga(T45, T46, T47, T55, appD_in_ggga(T45, T53, T54, X27))
appD_in_ggga(T93, T94, T95, .(T93, X134)) → U3_ggga(T93, T94, T95, X134, appB_in_gga(T94, T95, X134))
appB_in_gga([], T102, T102) → appB_out_gga([], T102, T102)
appB_in_gga(.(T109, T110), T111, .(T109, X156)) → U2_gga(T109, T110, T111, X156, appB_in_gga(T110, T111, X156))
U2_gga(T109, T110, T111, X156, appB_out_gga(T110, T111, X156)) → appB_out_gga(.(T109, T110), T111, .(T109, X156))
U3_ggga(T93, T94, T95, X134, appB_out_gga(T94, T95, X134)) → appD_out_ggga(T93, T94, T95, .(T93, X134))
U9_ga(T45, T46, T47, T55, appD_out_ggga(T45, T53, T54, X27)) → permE_out_ga(.(T45, T46), .(T47, T55))
U8_ga(T45, T46, T47, T55, appA_out_aaag(T53, T47, T54, T46)) → U10_ga(T45, T46, T47, T55, appD_in_ggga(T45, T53, T54, T84))
U10_ga(T45, T46, T47, T55, appD_out_ggga(T45, T53, T54, T84)) → U11_ga(T45, T46, T47, T55, permE_in_ga(T84, T55))
U11_ga(T45, T46, T47, T55, permE_out_ga(T84, T55)) → permE_out_ga(.(T45, T46), .(T47, T55))
U6_ga(T27, T28, T29, permE_out_ga(T31, T29)) → permE_out_ga(.(T27, T28), .(T27, T29))

The argument filtering Pi contains the following mapping:
permE_in_ga(x1, x2)  =  permE_in_ga(x1)
[]  =  []
permE_out_ga(x1, x2)  =  permE_out_ga
.(x1, x2)  =  .(x1, x2)
U4_ga(x1, x2, x3, x4)  =  U4_ga(x4)
appC_in_ga(x1, x2)  =  appC_in_ga(x1)
appC_out_ga(x1, x2)  =  appC_out_ga(x2)
U5_ga(x1, x2, x3, x4)  =  U5_ga(x4)
U6_ga(x1, x2, x3, x4)  =  U6_ga(x4)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x5)
appA_in_aaag(x1, x2, x3, x4)  =  appA_in_aaag(x4)
appA_out_aaag(x1, x2, x3, x4)  =  appA_out_aaag(x1, x2, x3)
U1_aaag(x1, x2, x3, x4, x5, x6)  =  U1_aaag(x1, x6)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x1, x5)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x5)
appD_in_ggga(x1, x2, x3, x4)  =  appD_in_ggga(x1, x2, x3)
U3_ggga(x1, x2, x3, x4, x5)  =  U3_ggga(x1, x5)
appB_in_gga(x1, x2, x3)  =  appB_in_gga(x1, x2)
appB_out_gga(x1, x2, x3)  =  appB_out_gga(x3)
U2_gga(x1, x2, x3, x4, x5)  =  U2_gga(x1, x5)
appD_out_ggga(x1, x2, x3, x4)  =  appD_out_ggga(x4)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x5)
U11_ga(x1, x2, x3, x4, x5)  =  U11_ga(x5)
PERME_IN_GA(x1, x2)  =  PERME_IN_GA(x1)
U4_GA(x1, x2, x3, x4)  =  U4_GA(x4)
APPC_IN_GA(x1, x2)  =  APPC_IN_GA(x1)
U5_GA(x1, x2, x3, x4)  =  U5_GA(x4)
U6_GA(x1, x2, x3, x4)  =  U6_GA(x4)
U7_GA(x1, x2, x3, x4, x5)  =  U7_GA(x5)
APPA_IN_AAAG(x1, x2, x3, x4)  =  APPA_IN_AAAG(x4)
U1_AAAG(x1, x2, x3, x4, x5, x6)  =  U1_AAAG(x1, x6)
U8_GA(x1, x2, x3, x4, x5)  =  U8_GA(x1, x5)
U9_GA(x1, x2, x3, x4, x5)  =  U9_GA(x5)
APPD_IN_GGGA(x1, x2, x3, x4)  =  APPD_IN_GGGA(x1, x2, x3)
U3_GGGA(x1, x2, x3, x4, x5)  =  U3_GGGA(x1, x5)
APPB_IN_GGA(x1, x2, x3)  =  APPB_IN_GGA(x1, x2)
U2_GGA(x1, x2, x3, x4, x5)  =  U2_GGA(x1, x5)
U10_GA(x1, x2, x3, x4, x5)  =  U10_GA(x5)
U11_GA(x1, x2, x3, x4, x5)  =  U11_GA(x5)

We have to consider all (P,R,Pi)-chains

(6) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

PERME_IN_GA(.(T27, T28), .(T27, T29)) → U4_GA(T27, T28, T29, appC_in_ga(T28, X27))
PERME_IN_GA(.(T27, T28), .(T27, T29)) → APPC_IN_GA(T28, X27)
PERME_IN_GA(.(T27, T28), .(T27, T29)) → U5_GA(T27, T28, T29, appC_in_ga(T28, T31))
U5_GA(T27, T28, T29, appC_out_ga(T28, T31)) → U6_GA(T27, T28, T29, permE_in_ga(T31, T29))
U5_GA(T27, T28, T29, appC_out_ga(T28, T31)) → PERME_IN_GA(T31, T29)
PERME_IN_GA(.(T45, T46), .(T47, T48)) → U7_GA(T45, T46, T47, T48, appA_in_aaag(X68, T47, X69, T46))
PERME_IN_GA(.(T45, T46), .(T47, T48)) → APPA_IN_AAAG(X68, T47, X69, T46)
APPA_IN_AAAG(.(T77, X107), T79, X108, .(T77, T78)) → U1_AAAG(T77, X107, T79, X108, T78, appA_in_aaag(X107, T79, X108, T78))
APPA_IN_AAAG(.(T77, X107), T79, X108, .(T77, T78)) → APPA_IN_AAAG(X107, T79, X108, T78)
PERME_IN_GA(.(T45, T46), .(T47, T55)) → U8_GA(T45, T46, T47, T55, appA_in_aaag(T53, T47, T54, T46))
U8_GA(T45, T46, T47, T55, appA_out_aaag(T53, T47, T54, T46)) → U9_GA(T45, T46, T47, T55, appD_in_ggga(T45, T53, T54, X27))
U8_GA(T45, T46, T47, T55, appA_out_aaag(T53, T47, T54, T46)) → APPD_IN_GGGA(T45, T53, T54, X27)
APPD_IN_GGGA(T93, T94, T95, .(T93, X134)) → U3_GGGA(T93, T94, T95, X134, appB_in_gga(T94, T95, X134))
APPD_IN_GGGA(T93, T94, T95, .(T93, X134)) → APPB_IN_GGA(T94, T95, X134)
APPB_IN_GGA(.(T109, T110), T111, .(T109, X156)) → U2_GGA(T109, T110, T111, X156, appB_in_gga(T110, T111, X156))
APPB_IN_GGA(.(T109, T110), T111, .(T109, X156)) → APPB_IN_GGA(T110, T111, X156)
U8_GA(T45, T46, T47, T55, appA_out_aaag(T53, T47, T54, T46)) → U10_GA(T45, T46, T47, T55, appD_in_ggga(T45, T53, T54, T84))
U10_GA(T45, T46, T47, T55, appD_out_ggga(T45, T53, T54, T84)) → U11_GA(T45, T46, T47, T55, permE_in_ga(T84, T55))
U10_GA(T45, T46, T47, T55, appD_out_ggga(T45, T53, T54, T84)) → PERME_IN_GA(T84, T55)

The TRS R consists of the following rules:

permE_in_ga([], []) → permE_out_ga([], [])
permE_in_ga(.(T27, T28), .(T27, T29)) → U4_ga(T27, T28, T29, appC_in_ga(T28, X27))
appC_in_ga(T37, T37) → appC_out_ga(T37, T37)
U4_ga(T27, T28, T29, appC_out_ga(T28, X27)) → permE_out_ga(.(T27, T28), .(T27, T29))
permE_in_ga(.(T27, T28), .(T27, T29)) → U5_ga(T27, T28, T29, appC_in_ga(T28, T31))
U5_ga(T27, T28, T29, appC_out_ga(T28, T31)) → U6_ga(T27, T28, T29, permE_in_ga(T31, T29))
permE_in_ga(.(T45, T46), .(T47, T48)) → U7_ga(T45, T46, T47, T48, appA_in_aaag(X68, T47, X69, T46))
appA_in_aaag([], T68, T69, .(T68, T69)) → appA_out_aaag([], T68, T69, .(T68, T69))
appA_in_aaag(.(T77, X107), T79, X108, .(T77, T78)) → U1_aaag(T77, X107, T79, X108, T78, appA_in_aaag(X107, T79, X108, T78))
U1_aaag(T77, X107, T79, X108, T78, appA_out_aaag(X107, T79, X108, T78)) → appA_out_aaag(.(T77, X107), T79, X108, .(T77, T78))
U7_ga(T45, T46, T47, T48, appA_out_aaag(X68, T47, X69, T46)) → permE_out_ga(.(T45, T46), .(T47, T48))
permE_in_ga(.(T45, T46), .(T47, T55)) → U8_ga(T45, T46, T47, T55, appA_in_aaag(T53, T47, T54, T46))
U8_ga(T45, T46, T47, T55, appA_out_aaag(T53, T47, T54, T46)) → U9_ga(T45, T46, T47, T55, appD_in_ggga(T45, T53, T54, X27))
appD_in_ggga(T93, T94, T95, .(T93, X134)) → U3_ggga(T93, T94, T95, X134, appB_in_gga(T94, T95, X134))
appB_in_gga([], T102, T102) → appB_out_gga([], T102, T102)
appB_in_gga(.(T109, T110), T111, .(T109, X156)) → U2_gga(T109, T110, T111, X156, appB_in_gga(T110, T111, X156))
U2_gga(T109, T110, T111, X156, appB_out_gga(T110, T111, X156)) → appB_out_gga(.(T109, T110), T111, .(T109, X156))
U3_ggga(T93, T94, T95, X134, appB_out_gga(T94, T95, X134)) → appD_out_ggga(T93, T94, T95, .(T93, X134))
U9_ga(T45, T46, T47, T55, appD_out_ggga(T45, T53, T54, X27)) → permE_out_ga(.(T45, T46), .(T47, T55))
U8_ga(T45, T46, T47, T55, appA_out_aaag(T53, T47, T54, T46)) → U10_ga(T45, T46, T47, T55, appD_in_ggga(T45, T53, T54, T84))
U10_ga(T45, T46, T47, T55, appD_out_ggga(T45, T53, T54, T84)) → U11_ga(T45, T46, T47, T55, permE_in_ga(T84, T55))
U11_ga(T45, T46, T47, T55, permE_out_ga(T84, T55)) → permE_out_ga(.(T45, T46), .(T47, T55))
U6_ga(T27, T28, T29, permE_out_ga(T31, T29)) → permE_out_ga(.(T27, T28), .(T27, T29))

The argument filtering Pi contains the following mapping:
permE_in_ga(x1, x2)  =  permE_in_ga(x1)
[]  =  []
permE_out_ga(x1, x2)  =  permE_out_ga
.(x1, x2)  =  .(x1, x2)
U4_ga(x1, x2, x3, x4)  =  U4_ga(x4)
appC_in_ga(x1, x2)  =  appC_in_ga(x1)
appC_out_ga(x1, x2)  =  appC_out_ga(x2)
U5_ga(x1, x2, x3, x4)  =  U5_ga(x4)
U6_ga(x1, x2, x3, x4)  =  U6_ga(x4)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x5)
appA_in_aaag(x1, x2, x3, x4)  =  appA_in_aaag(x4)
appA_out_aaag(x1, x2, x3, x4)  =  appA_out_aaag(x1, x2, x3)
U1_aaag(x1, x2, x3, x4, x5, x6)  =  U1_aaag(x1, x6)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x1, x5)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x5)
appD_in_ggga(x1, x2, x3, x4)  =  appD_in_ggga(x1, x2, x3)
U3_ggga(x1, x2, x3, x4, x5)  =  U3_ggga(x1, x5)
appB_in_gga(x1, x2, x3)  =  appB_in_gga(x1, x2)
appB_out_gga(x1, x2, x3)  =  appB_out_gga(x3)
U2_gga(x1, x2, x3, x4, x5)  =  U2_gga(x1, x5)
appD_out_ggga(x1, x2, x3, x4)  =  appD_out_ggga(x4)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x5)
U11_ga(x1, x2, x3, x4, x5)  =  U11_ga(x5)
PERME_IN_GA(x1, x2)  =  PERME_IN_GA(x1)
U4_GA(x1, x2, x3, x4)  =  U4_GA(x4)
APPC_IN_GA(x1, x2)  =  APPC_IN_GA(x1)
U5_GA(x1, x2, x3, x4)  =  U5_GA(x4)
U6_GA(x1, x2, x3, x4)  =  U6_GA(x4)
U7_GA(x1, x2, x3, x4, x5)  =  U7_GA(x5)
APPA_IN_AAAG(x1, x2, x3, x4)  =  APPA_IN_AAAG(x4)
U1_AAAG(x1, x2, x3, x4, x5, x6)  =  U1_AAAG(x1, x6)
U8_GA(x1, x2, x3, x4, x5)  =  U8_GA(x1, x5)
U9_GA(x1, x2, x3, x4, x5)  =  U9_GA(x5)
APPD_IN_GGGA(x1, x2, x3, x4)  =  APPD_IN_GGGA(x1, x2, x3)
U3_GGGA(x1, x2, x3, x4, x5)  =  U3_GGGA(x1, x5)
APPB_IN_GGA(x1, x2, x3)  =  APPB_IN_GGA(x1, x2)
U2_GGA(x1, x2, x3, x4, x5)  =  U2_GGA(x1, x5)
U10_GA(x1, x2, x3, x4, x5)  =  U10_GA(x5)
U11_GA(x1, x2, x3, x4, x5)  =  U11_GA(x5)

We have to consider all (P,R,Pi)-chains

(7) DependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LOPSTR] contains 3 SCCs with 12 less nodes.

(8) Complex Obligation (AND)

(9) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

APPB_IN_GGA(.(T109, T110), T111, .(T109, X156)) → APPB_IN_GGA(T110, T111, X156)

The TRS R consists of the following rules:

permE_in_ga([], []) → permE_out_ga([], [])
permE_in_ga(.(T27, T28), .(T27, T29)) → U4_ga(T27, T28, T29, appC_in_ga(T28, X27))
appC_in_ga(T37, T37) → appC_out_ga(T37, T37)
U4_ga(T27, T28, T29, appC_out_ga(T28, X27)) → permE_out_ga(.(T27, T28), .(T27, T29))
permE_in_ga(.(T27, T28), .(T27, T29)) → U5_ga(T27, T28, T29, appC_in_ga(T28, T31))
U5_ga(T27, T28, T29, appC_out_ga(T28, T31)) → U6_ga(T27, T28, T29, permE_in_ga(T31, T29))
permE_in_ga(.(T45, T46), .(T47, T48)) → U7_ga(T45, T46, T47, T48, appA_in_aaag(X68, T47, X69, T46))
appA_in_aaag([], T68, T69, .(T68, T69)) → appA_out_aaag([], T68, T69, .(T68, T69))
appA_in_aaag(.(T77, X107), T79, X108, .(T77, T78)) → U1_aaag(T77, X107, T79, X108, T78, appA_in_aaag(X107, T79, X108, T78))
U1_aaag(T77, X107, T79, X108, T78, appA_out_aaag(X107, T79, X108, T78)) → appA_out_aaag(.(T77, X107), T79, X108, .(T77, T78))
U7_ga(T45, T46, T47, T48, appA_out_aaag(X68, T47, X69, T46)) → permE_out_ga(.(T45, T46), .(T47, T48))
permE_in_ga(.(T45, T46), .(T47, T55)) → U8_ga(T45, T46, T47, T55, appA_in_aaag(T53, T47, T54, T46))
U8_ga(T45, T46, T47, T55, appA_out_aaag(T53, T47, T54, T46)) → U9_ga(T45, T46, T47, T55, appD_in_ggga(T45, T53, T54, X27))
appD_in_ggga(T93, T94, T95, .(T93, X134)) → U3_ggga(T93, T94, T95, X134, appB_in_gga(T94, T95, X134))
appB_in_gga([], T102, T102) → appB_out_gga([], T102, T102)
appB_in_gga(.(T109, T110), T111, .(T109, X156)) → U2_gga(T109, T110, T111, X156, appB_in_gga(T110, T111, X156))
U2_gga(T109, T110, T111, X156, appB_out_gga(T110, T111, X156)) → appB_out_gga(.(T109, T110), T111, .(T109, X156))
U3_ggga(T93, T94, T95, X134, appB_out_gga(T94, T95, X134)) → appD_out_ggga(T93, T94, T95, .(T93, X134))
U9_ga(T45, T46, T47, T55, appD_out_ggga(T45, T53, T54, X27)) → permE_out_ga(.(T45, T46), .(T47, T55))
U8_ga(T45, T46, T47, T55, appA_out_aaag(T53, T47, T54, T46)) → U10_ga(T45, T46, T47, T55, appD_in_ggga(T45, T53, T54, T84))
U10_ga(T45, T46, T47, T55, appD_out_ggga(T45, T53, T54, T84)) → U11_ga(T45, T46, T47, T55, permE_in_ga(T84, T55))
U11_ga(T45, T46, T47, T55, permE_out_ga(T84, T55)) → permE_out_ga(.(T45, T46), .(T47, T55))
U6_ga(T27, T28, T29, permE_out_ga(T31, T29)) → permE_out_ga(.(T27, T28), .(T27, T29))

The argument filtering Pi contains the following mapping:
permE_in_ga(x1, x2)  =  permE_in_ga(x1)
[]  =  []
permE_out_ga(x1, x2)  =  permE_out_ga
.(x1, x2)  =  .(x1, x2)
U4_ga(x1, x2, x3, x4)  =  U4_ga(x4)
appC_in_ga(x1, x2)  =  appC_in_ga(x1)
appC_out_ga(x1, x2)  =  appC_out_ga(x2)
U5_ga(x1, x2, x3, x4)  =  U5_ga(x4)
U6_ga(x1, x2, x3, x4)  =  U6_ga(x4)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x5)
appA_in_aaag(x1, x2, x3, x4)  =  appA_in_aaag(x4)
appA_out_aaag(x1, x2, x3, x4)  =  appA_out_aaag(x1, x2, x3)
U1_aaag(x1, x2, x3, x4, x5, x6)  =  U1_aaag(x1, x6)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x1, x5)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x5)
appD_in_ggga(x1, x2, x3, x4)  =  appD_in_ggga(x1, x2, x3)
U3_ggga(x1, x2, x3, x4, x5)  =  U3_ggga(x1, x5)
appB_in_gga(x1, x2, x3)  =  appB_in_gga(x1, x2)
appB_out_gga(x1, x2, x3)  =  appB_out_gga(x3)
U2_gga(x1, x2, x3, x4, x5)  =  U2_gga(x1, x5)
appD_out_ggga(x1, x2, x3, x4)  =  appD_out_ggga(x4)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x5)
U11_ga(x1, x2, x3, x4, x5)  =  U11_ga(x5)
APPB_IN_GGA(x1, x2, x3)  =  APPB_IN_GGA(x1, x2)

We have to consider all (P,R,Pi)-chains

(10) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(11) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

APPB_IN_GGA(.(T109, T110), T111, .(T109, X156)) → APPB_IN_GGA(T110, T111, X156)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
APPB_IN_GGA(x1, x2, x3)  =  APPB_IN_GGA(x1, x2)

We have to consider all (P,R,Pi)-chains

(12) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(13) Obligation:

Q DP problem:
The TRS P consists of the following rules:

APPB_IN_GGA(.(T109, T110), T111) → APPB_IN_GGA(T110, T111)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(14) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • APPB_IN_GGA(.(T109, T110), T111) → APPB_IN_GGA(T110, T111)
    The graph contains the following edges 1 > 1, 2 >= 2

(15) YES

(16) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

APPA_IN_AAAG(.(T77, X107), T79, X108, .(T77, T78)) → APPA_IN_AAAG(X107, T79, X108, T78)

The TRS R consists of the following rules:

permE_in_ga([], []) → permE_out_ga([], [])
permE_in_ga(.(T27, T28), .(T27, T29)) → U4_ga(T27, T28, T29, appC_in_ga(T28, X27))
appC_in_ga(T37, T37) → appC_out_ga(T37, T37)
U4_ga(T27, T28, T29, appC_out_ga(T28, X27)) → permE_out_ga(.(T27, T28), .(T27, T29))
permE_in_ga(.(T27, T28), .(T27, T29)) → U5_ga(T27, T28, T29, appC_in_ga(T28, T31))
U5_ga(T27, T28, T29, appC_out_ga(T28, T31)) → U6_ga(T27, T28, T29, permE_in_ga(T31, T29))
permE_in_ga(.(T45, T46), .(T47, T48)) → U7_ga(T45, T46, T47, T48, appA_in_aaag(X68, T47, X69, T46))
appA_in_aaag([], T68, T69, .(T68, T69)) → appA_out_aaag([], T68, T69, .(T68, T69))
appA_in_aaag(.(T77, X107), T79, X108, .(T77, T78)) → U1_aaag(T77, X107, T79, X108, T78, appA_in_aaag(X107, T79, X108, T78))
U1_aaag(T77, X107, T79, X108, T78, appA_out_aaag(X107, T79, X108, T78)) → appA_out_aaag(.(T77, X107), T79, X108, .(T77, T78))
U7_ga(T45, T46, T47, T48, appA_out_aaag(X68, T47, X69, T46)) → permE_out_ga(.(T45, T46), .(T47, T48))
permE_in_ga(.(T45, T46), .(T47, T55)) → U8_ga(T45, T46, T47, T55, appA_in_aaag(T53, T47, T54, T46))
U8_ga(T45, T46, T47, T55, appA_out_aaag(T53, T47, T54, T46)) → U9_ga(T45, T46, T47, T55, appD_in_ggga(T45, T53, T54, X27))
appD_in_ggga(T93, T94, T95, .(T93, X134)) → U3_ggga(T93, T94, T95, X134, appB_in_gga(T94, T95, X134))
appB_in_gga([], T102, T102) → appB_out_gga([], T102, T102)
appB_in_gga(.(T109, T110), T111, .(T109, X156)) → U2_gga(T109, T110, T111, X156, appB_in_gga(T110, T111, X156))
U2_gga(T109, T110, T111, X156, appB_out_gga(T110, T111, X156)) → appB_out_gga(.(T109, T110), T111, .(T109, X156))
U3_ggga(T93, T94, T95, X134, appB_out_gga(T94, T95, X134)) → appD_out_ggga(T93, T94, T95, .(T93, X134))
U9_ga(T45, T46, T47, T55, appD_out_ggga(T45, T53, T54, X27)) → permE_out_ga(.(T45, T46), .(T47, T55))
U8_ga(T45, T46, T47, T55, appA_out_aaag(T53, T47, T54, T46)) → U10_ga(T45, T46, T47, T55, appD_in_ggga(T45, T53, T54, T84))
U10_ga(T45, T46, T47, T55, appD_out_ggga(T45, T53, T54, T84)) → U11_ga(T45, T46, T47, T55, permE_in_ga(T84, T55))
U11_ga(T45, T46, T47, T55, permE_out_ga(T84, T55)) → permE_out_ga(.(T45, T46), .(T47, T55))
U6_ga(T27, T28, T29, permE_out_ga(T31, T29)) → permE_out_ga(.(T27, T28), .(T27, T29))

The argument filtering Pi contains the following mapping:
permE_in_ga(x1, x2)  =  permE_in_ga(x1)
[]  =  []
permE_out_ga(x1, x2)  =  permE_out_ga
.(x1, x2)  =  .(x1, x2)
U4_ga(x1, x2, x3, x4)  =  U4_ga(x4)
appC_in_ga(x1, x2)  =  appC_in_ga(x1)
appC_out_ga(x1, x2)  =  appC_out_ga(x2)
U5_ga(x1, x2, x3, x4)  =  U5_ga(x4)
U6_ga(x1, x2, x3, x4)  =  U6_ga(x4)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x5)
appA_in_aaag(x1, x2, x3, x4)  =  appA_in_aaag(x4)
appA_out_aaag(x1, x2, x3, x4)  =  appA_out_aaag(x1, x2, x3)
U1_aaag(x1, x2, x3, x4, x5, x6)  =  U1_aaag(x1, x6)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x1, x5)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x5)
appD_in_ggga(x1, x2, x3, x4)  =  appD_in_ggga(x1, x2, x3)
U3_ggga(x1, x2, x3, x4, x5)  =  U3_ggga(x1, x5)
appB_in_gga(x1, x2, x3)  =  appB_in_gga(x1, x2)
appB_out_gga(x1, x2, x3)  =  appB_out_gga(x3)
U2_gga(x1, x2, x3, x4, x5)  =  U2_gga(x1, x5)
appD_out_ggga(x1, x2, x3, x4)  =  appD_out_ggga(x4)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x5)
U11_ga(x1, x2, x3, x4, x5)  =  U11_ga(x5)
APPA_IN_AAAG(x1, x2, x3, x4)  =  APPA_IN_AAAG(x4)

We have to consider all (P,R,Pi)-chains

(17) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(18) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

APPA_IN_AAAG(.(T77, X107), T79, X108, .(T77, T78)) → APPA_IN_AAAG(X107, T79, X108, T78)

R is empty.
The argument filtering Pi contains the following mapping:
.(x1, x2)  =  .(x1, x2)
APPA_IN_AAAG(x1, x2, x3, x4)  =  APPA_IN_AAAG(x4)

We have to consider all (P,R,Pi)-chains

(19) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(20) Obligation:

Q DP problem:
The TRS P consists of the following rules:

APPA_IN_AAAG(.(T77, T78)) → APPA_IN_AAAG(T78)

R is empty.
Q is empty.
We have to consider all (P,Q,R)-chains.

(21) QDPSizeChangeProof (EQUIVALENT transformation)

By using the subterm criterion [SUBTERM_CRITERION] together with the size-change analysis [AAECC05] we have proven that there are no infinite chains for this DP problem.

From the DPs we obtained the following set of size-change graphs:

  • APPA_IN_AAAG(.(T77, T78)) → APPA_IN_AAAG(T78)
    The graph contains the following edges 1 > 1

(22) YES

(23) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

PERME_IN_GA(.(T27, T28), .(T27, T29)) → U5_GA(T27, T28, T29, appC_in_ga(T28, T31))
U5_GA(T27, T28, T29, appC_out_ga(T28, T31)) → PERME_IN_GA(T31, T29)
PERME_IN_GA(.(T45, T46), .(T47, T55)) → U8_GA(T45, T46, T47, T55, appA_in_aaag(T53, T47, T54, T46))
U8_GA(T45, T46, T47, T55, appA_out_aaag(T53, T47, T54, T46)) → U10_GA(T45, T46, T47, T55, appD_in_ggga(T45, T53, T54, T84))
U10_GA(T45, T46, T47, T55, appD_out_ggga(T45, T53, T54, T84)) → PERME_IN_GA(T84, T55)

The TRS R consists of the following rules:

permE_in_ga([], []) → permE_out_ga([], [])
permE_in_ga(.(T27, T28), .(T27, T29)) → U4_ga(T27, T28, T29, appC_in_ga(T28, X27))
appC_in_ga(T37, T37) → appC_out_ga(T37, T37)
U4_ga(T27, T28, T29, appC_out_ga(T28, X27)) → permE_out_ga(.(T27, T28), .(T27, T29))
permE_in_ga(.(T27, T28), .(T27, T29)) → U5_ga(T27, T28, T29, appC_in_ga(T28, T31))
U5_ga(T27, T28, T29, appC_out_ga(T28, T31)) → U6_ga(T27, T28, T29, permE_in_ga(T31, T29))
permE_in_ga(.(T45, T46), .(T47, T48)) → U7_ga(T45, T46, T47, T48, appA_in_aaag(X68, T47, X69, T46))
appA_in_aaag([], T68, T69, .(T68, T69)) → appA_out_aaag([], T68, T69, .(T68, T69))
appA_in_aaag(.(T77, X107), T79, X108, .(T77, T78)) → U1_aaag(T77, X107, T79, X108, T78, appA_in_aaag(X107, T79, X108, T78))
U1_aaag(T77, X107, T79, X108, T78, appA_out_aaag(X107, T79, X108, T78)) → appA_out_aaag(.(T77, X107), T79, X108, .(T77, T78))
U7_ga(T45, T46, T47, T48, appA_out_aaag(X68, T47, X69, T46)) → permE_out_ga(.(T45, T46), .(T47, T48))
permE_in_ga(.(T45, T46), .(T47, T55)) → U8_ga(T45, T46, T47, T55, appA_in_aaag(T53, T47, T54, T46))
U8_ga(T45, T46, T47, T55, appA_out_aaag(T53, T47, T54, T46)) → U9_ga(T45, T46, T47, T55, appD_in_ggga(T45, T53, T54, X27))
appD_in_ggga(T93, T94, T95, .(T93, X134)) → U3_ggga(T93, T94, T95, X134, appB_in_gga(T94, T95, X134))
appB_in_gga([], T102, T102) → appB_out_gga([], T102, T102)
appB_in_gga(.(T109, T110), T111, .(T109, X156)) → U2_gga(T109, T110, T111, X156, appB_in_gga(T110, T111, X156))
U2_gga(T109, T110, T111, X156, appB_out_gga(T110, T111, X156)) → appB_out_gga(.(T109, T110), T111, .(T109, X156))
U3_ggga(T93, T94, T95, X134, appB_out_gga(T94, T95, X134)) → appD_out_ggga(T93, T94, T95, .(T93, X134))
U9_ga(T45, T46, T47, T55, appD_out_ggga(T45, T53, T54, X27)) → permE_out_ga(.(T45, T46), .(T47, T55))
U8_ga(T45, T46, T47, T55, appA_out_aaag(T53, T47, T54, T46)) → U10_ga(T45, T46, T47, T55, appD_in_ggga(T45, T53, T54, T84))
U10_ga(T45, T46, T47, T55, appD_out_ggga(T45, T53, T54, T84)) → U11_ga(T45, T46, T47, T55, permE_in_ga(T84, T55))
U11_ga(T45, T46, T47, T55, permE_out_ga(T84, T55)) → permE_out_ga(.(T45, T46), .(T47, T55))
U6_ga(T27, T28, T29, permE_out_ga(T31, T29)) → permE_out_ga(.(T27, T28), .(T27, T29))

The argument filtering Pi contains the following mapping:
permE_in_ga(x1, x2)  =  permE_in_ga(x1)
[]  =  []
permE_out_ga(x1, x2)  =  permE_out_ga
.(x1, x2)  =  .(x1, x2)
U4_ga(x1, x2, x3, x4)  =  U4_ga(x4)
appC_in_ga(x1, x2)  =  appC_in_ga(x1)
appC_out_ga(x1, x2)  =  appC_out_ga(x2)
U5_ga(x1, x2, x3, x4)  =  U5_ga(x4)
U6_ga(x1, x2, x3, x4)  =  U6_ga(x4)
U7_ga(x1, x2, x3, x4, x5)  =  U7_ga(x5)
appA_in_aaag(x1, x2, x3, x4)  =  appA_in_aaag(x4)
appA_out_aaag(x1, x2, x3, x4)  =  appA_out_aaag(x1, x2, x3)
U1_aaag(x1, x2, x3, x4, x5, x6)  =  U1_aaag(x1, x6)
U8_ga(x1, x2, x3, x4, x5)  =  U8_ga(x1, x5)
U9_ga(x1, x2, x3, x4, x5)  =  U9_ga(x5)
appD_in_ggga(x1, x2, x3, x4)  =  appD_in_ggga(x1, x2, x3)
U3_ggga(x1, x2, x3, x4, x5)  =  U3_ggga(x1, x5)
appB_in_gga(x1, x2, x3)  =  appB_in_gga(x1, x2)
appB_out_gga(x1, x2, x3)  =  appB_out_gga(x3)
U2_gga(x1, x2, x3, x4, x5)  =  U2_gga(x1, x5)
appD_out_ggga(x1, x2, x3, x4)  =  appD_out_ggga(x4)
U10_ga(x1, x2, x3, x4, x5)  =  U10_ga(x5)
U11_ga(x1, x2, x3, x4, x5)  =  U11_ga(x5)
PERME_IN_GA(x1, x2)  =  PERME_IN_GA(x1)
U5_GA(x1, x2, x3, x4)  =  U5_GA(x4)
U8_GA(x1, x2, x3, x4, x5)  =  U8_GA(x1, x5)
U10_GA(x1, x2, x3, x4, x5)  =  U10_GA(x5)

We have to consider all (P,R,Pi)-chains

(24) UsableRulesProof (EQUIVALENT transformation)

For (infinitary) constructor rewriting [LOPSTR] we can delete all non-usable rules from R.

(25) Obligation:

Pi DP problem:
The TRS P consists of the following rules:

PERME_IN_GA(.(T27, T28), .(T27, T29)) → U5_GA(T27, T28, T29, appC_in_ga(T28, T31))
U5_GA(T27, T28, T29, appC_out_ga(T28, T31)) → PERME_IN_GA(T31, T29)
PERME_IN_GA(.(T45, T46), .(T47, T55)) → U8_GA(T45, T46, T47, T55, appA_in_aaag(T53, T47, T54, T46))
U8_GA(T45, T46, T47, T55, appA_out_aaag(T53, T47, T54, T46)) → U10_GA(T45, T46, T47, T55, appD_in_ggga(T45, T53, T54, T84))
U10_GA(T45, T46, T47, T55, appD_out_ggga(T45, T53, T54, T84)) → PERME_IN_GA(T84, T55)

The TRS R consists of the following rules:

appC_in_ga(T37, T37) → appC_out_ga(T37, T37)
appA_in_aaag([], T68, T69, .(T68, T69)) → appA_out_aaag([], T68, T69, .(T68, T69))
appA_in_aaag(.(T77, X107), T79, X108, .(T77, T78)) → U1_aaag(T77, X107, T79, X108, T78, appA_in_aaag(X107, T79, X108, T78))
appD_in_ggga(T93, T94, T95, .(T93, X134)) → U3_ggga(T93, T94, T95, X134, appB_in_gga(T94, T95, X134))
U1_aaag(T77, X107, T79, X108, T78, appA_out_aaag(X107, T79, X108, T78)) → appA_out_aaag(.(T77, X107), T79, X108, .(T77, T78))
U3_ggga(T93, T94, T95, X134, appB_out_gga(T94, T95, X134)) → appD_out_ggga(T93, T94, T95, .(T93, X134))
appB_in_gga([], T102, T102) → appB_out_gga([], T102, T102)
appB_in_gga(.(T109, T110), T111, .(T109, X156)) → U2_gga(T109, T110, T111, X156, appB_in_gga(T110, T111, X156))
U2_gga(T109, T110, T111, X156, appB_out_gga(T110, T111, X156)) → appB_out_gga(.(T109, T110), T111, .(T109, X156))

The argument filtering Pi contains the following mapping:
[]  =  []
.(x1, x2)  =  .(x1, x2)
appC_in_ga(x1, x2)  =  appC_in_ga(x1)
appC_out_ga(x1, x2)  =  appC_out_ga(x2)
appA_in_aaag(x1, x2, x3, x4)  =  appA_in_aaag(x4)
appA_out_aaag(x1, x2, x3, x4)  =  appA_out_aaag(x1, x2, x3)
U1_aaag(x1, x2, x3, x4, x5, x6)  =  U1_aaag(x1, x6)
appD_in_ggga(x1, x2, x3, x4)  =  appD_in_ggga(x1, x2, x3)
U3_ggga(x1, x2, x3, x4, x5)  =  U3_ggga(x1, x5)
appB_in_gga(x1, x2, x3)  =  appB_in_gga(x1, x2)
appB_out_gga(x1, x2, x3)  =  appB_out_gga(x3)
U2_gga(x1, x2, x3, x4, x5)  =  U2_gga(x1, x5)
appD_out_ggga(x1, x2, x3, x4)  =  appD_out_ggga(x4)
PERME_IN_GA(x1, x2)  =  PERME_IN_GA(x1)
U5_GA(x1, x2, x3, x4)  =  U5_GA(x4)
U8_GA(x1, x2, x3, x4, x5)  =  U8_GA(x1, x5)
U10_GA(x1, x2, x3, x4, x5)  =  U10_GA(x5)

We have to consider all (P,R,Pi)-chains

(26) PiDPToQDPProof (SOUND transformation)

Transforming (infinitary) constructor rewriting Pi-DP problem [LOPSTR] into ordinary QDP problem [LPAR04] by application of Pi.

(27) Obligation:

Q DP problem:
The TRS P consists of the following rules:

PERME_IN_GA(.(T27, T28)) → U5_GA(appC_in_ga(T28))
U5_GA(appC_out_ga(T31)) → PERME_IN_GA(T31)
PERME_IN_GA(.(T45, T46)) → U8_GA(T45, appA_in_aaag(T46))
U8_GA(T45, appA_out_aaag(T53, T47, T54)) → U10_GA(appD_in_ggga(T45, T53, T54))
U10_GA(appD_out_ggga(T84)) → PERME_IN_GA(T84)

The TRS R consists of the following rules:

appC_in_ga(T37) → appC_out_ga(T37)
appA_in_aaag(.(T68, T69)) → appA_out_aaag([], T68, T69)
appA_in_aaag(.(T77, T78)) → U1_aaag(T77, appA_in_aaag(T78))
appD_in_ggga(T93, T94, T95) → U3_ggga(T93, appB_in_gga(T94, T95))
U1_aaag(T77, appA_out_aaag(X107, T79, X108)) → appA_out_aaag(.(T77, X107), T79, X108)
U3_ggga(T93, appB_out_gga(X134)) → appD_out_ggga(.(T93, X134))
appB_in_gga([], T102) → appB_out_gga(T102)
appB_in_gga(.(T109, T110), T111) → U2_gga(T109, appB_in_gga(T110, T111))
U2_gga(T109, appB_out_gga(X156)) → appB_out_gga(.(T109, X156))

The set Q consists of the following terms:

appC_in_ga(x0)
appA_in_aaag(x0)
appD_in_ggga(x0, x1, x2)
U1_aaag(x0, x1)
U3_ggga(x0, x1)
appB_in_gga(x0, x1)
U2_gga(x0, x1)

We have to consider all (P,Q,R)-chains.

(28) MRRProof (EQUIVALENT transformation)

By using the rule removal processor [LPAR04] with the following ordering, at least one Dependency Pair or term rewrite system rule of this QDP problem can be strictly oriented.
Strictly oriented dependency pairs:

PERME_IN_GA(.(T27, T28)) → U5_GA(appC_in_ga(T28))
U5_GA(appC_out_ga(T31)) → PERME_IN_GA(T31)
PERME_IN_GA(.(T45, T46)) → U8_GA(T45, appA_in_aaag(T46))
U8_GA(T45, appA_out_aaag(T53, T47, T54)) → U10_GA(appD_in_ggga(T45, T53, T54))
U10_GA(appD_out_ggga(T84)) → PERME_IN_GA(T84)

Strictly oriented rules of the TRS R:

appC_in_ga(T37) → appC_out_ga(T37)
appA_in_aaag(.(T68, T69)) → appA_out_aaag([], T68, T69)
appA_in_aaag(.(T77, T78)) → U1_aaag(T77, appA_in_aaag(T78))
appD_in_ggga(T93, T94, T95) → U3_ggga(T93, appB_in_gga(T94, T95))
U1_aaag(T77, appA_out_aaag(X107, T79, X108)) → appA_out_aaag(.(T77, X107), T79, X108)
U3_ggga(T93, appB_out_gga(X134)) → appD_out_ggga(.(T93, X134))
appB_in_gga([], T102) → appB_out_gga(T102)
appB_in_gga(.(T109, T110), T111) → U2_gga(T109, appB_in_gga(T110, T111))
U2_gga(T109, appB_out_gga(X156)) → appB_out_gga(.(T109, X156))

Used ordering: Knuth-Bendix order [KBO] with precedence:
U10GA1 > appDinggga3 > appAinaaag1 > appCoutga1 > .2 > U5GA1 > PERMEINGA1 > U1aaag2 > U8GA2 > appBingga2 > U2gga2 > U3ggga2 > appDoutggga1 > appBoutgga1 > [] > appAoutaaag3 > appCinga1

and weight map:

[]=4
appC_in_ga_1=3
appC_out_ga_1=2
appA_in_aaag_1=3
appB_out_gga_1=4
appD_out_ggga_1=3
PERME_IN_GA_1=3
U5_GA_1=1
U10_GA_1=1
._2=1
appA_out_aaag_3=0
U1_aaag_2=1
appD_in_ggga_3=0
U3_ggga_2=0
appB_in_gga_2=0
U2_gga_2=1
U8_GA_2=1

The variable weight is 1

(29) Obligation:

Q DP problem:
P is empty.
R is empty.
The set Q consists of the following terms:

appC_in_ga(x0)
appA_in_aaag(x0)
appD_in_ggga(x0, x1, x2)
U1_aaag(x0, x1)
U3_ggga(x0, x1)
appB_in_gga(x0, x1)
U2_gga(x0, x1)

We have to consider all (P,Q,R)-chains.

(30) PisEmptyProof (EQUIVALENT transformation)

The TRS P is empty. Hence, there is no (P,Q,R) chain.

(31) YES